package com.amat0urheu.service;

import com.amat0urheu.pojo.Experiment;
import com.amat0urheu.pojo.ExperimentScene;
import com.amat0urheu.pojo.ExperimentScores;
import com.amat0urheu.pojo.ReturnRes;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

public interface ExperimentService {

    ReturnRes getExperimentpage(int pageSize, int pageNum);

    ReturnRes getExperimentByIdForUser(String name);

    ReturnRes updateExperiment(Experiment experiment);

    ReturnRes getExperimentAndScene(int pageSize, int pageNum);

    ReturnRes removegetExperimentAndScene(Integer id);

    ReturnRes getAllExperimentVm(int pageSize, int pageNum);

    ReturnRes applyVmServerForUser(String experimentName, String name);

    ReturnRes getExperimentVmsforUser(String name,Integer id);

    ReturnRes getexperiments();

    ReturnRes saveExperimentAndSceneAdd(Integer experimentId,Integer sceneId );

    ReturnRes removeExperimentAndScene(Integer id);

    ReturnRes ExperimentAndSceneupdate( ExperimentScene experimentScene);

    ReturnRes getExperimentScores(int pageSize, int pageNum);

    ReturnRes getAllExperiments();
    ReturnRes getAllUserScores(int pageSize, int pageNum);

    ReturnRes updateUserScore(ExperimentScores experimentScores);

    ReturnRes searchExperimentForAdmin(String key, String value, int pageNum, int pageSize);

    ReturnRes searchExperimentAndSceneForAdmin(String key, String value, int pageNum, int pageSize);

    ReturnRes searchExperimentScorePage(String key, String value, int pageNum, int pageSize);

    ReturnRes searchExperimentVmPage(String key, String value, int pageNum, int pageSize);

    ReturnRes saveExperiment(Experiment experiment);

    ReturnRes uploadImageForExperiment(MultipartFile file, Integer eid);

    ReturnRes getExperimentvmCount();


    void downloadScoreFile(HttpServletResponse response);




    ReturnRes releaseExperimentVm(Integer eid);

    ReturnRes removegetExperiment(Integer eid);

    ReturnRes releaseAllExpeirmentVms();
}
